package controlador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;

import modelo.Deposito;
import modelo.Drogueria;
import modelo.Despacho;
import modelo.Lote;

import vista.VentanaCompraProveedor;
import vista.VentanaListadoDespachosLapsoTiempo;
import vista.VentanaListadoDespachosTiempoModeloTabla;

public class ControladorListadoDespachosLapsoTiempo implements ActionListener {
	
	private VentanaListadoDespachosLapsoTiempo ventanaListadoLapso;
	private VentanaListadoDespachosTiempoModeloTabla ventanaListadoModelo;
	private Drogueria drogueria;
	private ArrayList<Despacho> listadoDespachos;
	
	
	public ControladorListadoDespachosLapsoTiempo(Drogueria dro) {
		// TODO Auto-generated constructor stub
		super();
		ventanaListadoLapso  = new VentanaListadoDespachosLapsoTiempo();
		ventanaListadoLapso.setLocationRelativeTo(null);
		ventanaListadoLapso.setVisible(true);
		ventanaListadoLapso.agregarListener(this);
		drogueria = dro;
		this.listadoDespachos = new ArrayList<>();
		ventanaListadoLapso.setListado(new VentanaListadoDespachosTiempoModeloTabla(this.listadoDespachos));
	}
	
	public void actionPerformed(ActionEvent ae){
		if (ae.getActionCommand().equalsIgnoreCase("Crear Reporte")){
			crear();
		}
		else if (ae.getActionCommand().equalsIgnoreCase("Limpiar")){
			ventanaListadoLapso.limpiarPantalla();
			this.listadoDespachos = new ArrayList<>();
			ventanaListadoLapso.setListado(new VentanaListadoDespachosTiempoModeloTabla(this.listadoDespachos));
			
		}
		else if (ae.getActionCommand().equalsIgnoreCase("Salir")){
			ventanaListadoLapso.dispose();
		}
	}
	
	private void crear(){
		
		if(ventanaListadoLapso.getFechaInicio().before(ventanaListadoLapso.getFechaFin()) && 
				(ventanaListadoLapso.getFechaFin().toString().equalsIgnoreCase("") != true && 
				 ventanaListadoLapso.getFechaInicio().toString().equalsIgnoreCase("") !=  true )){
	
			ventanaListadoLapso.mostrarMensaje(""+ this.drogueria.getDespachos().size());
			for (int i=0; i<this.drogueria.getDespachos().size(); i++){
				if ((this.drogueria.getDespachos().get(i).getFecha().after(ventanaListadoLapso.getFechaInicio())) && (listadoDespachos.get(i).getFecha().before(ventanaListadoLapso.getFechaFin()))){
					Despacho lista = new Despacho(this.drogueria.getDespachos().get(i).getNumeroDespacho(), this.drogueria.getDespachos().get(i).getFecha(), this.drogueria.getDespachos().get(i).getNumeroFactura());
					this.listadoDespachos.add(lista);
				}
			}
			
			ventanaListadoLapso.setListado(new VentanaListadoDespachosTiempoModeloTabla(this.listadoDespachos));

		
		} else {
			
			ventanaListadoLapso.mostrarMensaje("Debe Llenar los campos y la Fecha de inicio Menor a la Fecha de Fin");
		}
	
	}
	
	
	
	
	
}